தமிழ்

Google Cloud Functions கொண்டு சர்வர் அற்ற கணக்கீட்டை அணுகுங்கள். HTTP தூண்டுகோல்களை ஆராயும் இவ் வழிகாட்டி, அளவிடக்கூடிய நிகழ்வு சார்ந்த பயன்பாடுகளை உருவாக்க உலகெங்கிலும் உள்ள டெவலப்பர்களுக்கு உதவுகிறது.

Google Cloud Functions: HTTP தூண்டுகோல்களுக்கான ஒரு விரிவான வழிகாட்டி

Google Cloud Functions (GCF) என்பது சர்வர் இல்லாத ஒரு செயலாக்கச் சூழலாகும், இது கிளவுட் சேவைகளை உருவாக்கவும் இணைக்கவும் உங்களை அனுமதிக்கிறது. Cloud Functions மூலம், உங்கள் கிளவுட் உள்கட்டமைப்பு மற்றும் சேவைகளிலிருந்து வெளிப்படும் நிகழ்வுகளுடன் இணைக்கப்பட்டுள்ள எளிய, ஒற்றைப் பயன்பாட்டு செயல்பாடுகளை எழுதுகிறீர்கள். நீங்கள் கண்காணிக்கும் நிகழ்வு நிகழும்போது உங்கள் செயல்பாடு செயல்படுத்தப்படும். இந்த அணுகுமுறை சர்வர்கள் அல்லது ரன்டைம்களை நிர்வகிக்காமல் நிகழ்வு சார்ந்த பயன்பாடுகளை உருவாக்க உங்களை அனுமதிக்கிறது.

ஒரு கிளவுட் செயல்பாட்டைத் தூண்டுவதற்கான பொதுவான வழிகளில் ஒன்று HTTP கோரிக்கை வழியாகும். இந்த வழிகாட்டி Google Cloud Functions இல் HTTP தூண்டுகோல்களின் உலகத்தை ஆராய்ந்து, சக்திவாய்ந்த, அளவிடக்கூடிய மற்றும் செலவு குறைந்த பயன்பாடுகளை உருவாக்க உங்களுக்கு அறிவை வழங்கும்.

HTTP தூண்டுகோல்கள் என்றால் என்ன?

HTTP தூண்டுகோல் என்பது ஒரு HTTP கோரிக்கைக்குப் பதிலளிக்கும் வகையில் உங்கள் கிளவுட் செயல்பாட்டை இயக்க உங்களை அனுமதிக்கிறது. அடிப்படையில், ஒரு HTTP கோரிக்கை ஒரு குறிப்பிட்ட URL க்கு அனுப்பப்படும்போது, Google Cloud Functions அதனுடன் தொடர்புடைய செயல்பாட்டை தானாகவே செயல்படுத்தும். இது HTTP தூண்டுகோல்களை APIகள், வெப்ஹூக்குகள் மற்றும் நிகழ்வு சார்ந்த வலை பயன்பாடுகளை உருவாக்குவதற்கு ஏற்றதாக ஆக்குகிறது.

HTTP தூண்டுகோல்களைப் பயன்படுத்துவதன் முக்கிய நன்மைகள்:

HTTP தூண்டுகோலுடன் ஒரு கிளவுட் செயல்பாட்டை உருவாக்குதல்

ஒரு எளிய கிளவுட் செயல்பாட்டை HTTP தூண்டுகோலுடன் உருவாக்கும் செயல்முறையைப் பார்ப்போம். "Hello, World!" செய்தியுடன் பதிலளிக்கும் ஒரு செயல்பாட்டை நாம் உருவாக்குவோம். வெளியீட்டு சரத்தை மாற்றுவதன் மூலம் இந்த உதாரணத்தை பல்வேறு உலகளாவிய மொழிகளுக்கு ஏற்றவாறு மாற்றியமைக்கலாம்.

முன்நிபந்தனைகள்:

படிகள்:

  1. புதிய திட்டத்தை உருவாக்கவும் (உங்களிடம் இல்லையென்றால்):

    உங்களிடம் ஏற்கனவே ஒரு GCP திட்டம் இல்லையென்றால், Google Cloud Console இல் ஒன்றை உருவாக்கவும்.

  2. Cloud Functions API ஐ இயக்கவும்:

    Cloud Console இல், Cloud Functions API க்குச் சென்று அதை இயக்கவும்.

  3. செயல்பாடு கோப்பகத்தை உருவாக்கவும்:

    உங்கள் Cloud Function க்காக ஒரு புதிய கோப்பகத்தை உருவாக்கவும். உதாரணமாக:

    mkdir hello-http
    cd hello-http
  4. செயல்பாட்டுக் குறியீட்டை எழுதவும்:

    பின்வரும் குறியீட்டைக் கொண்ட `main.py` (அல்லது Node.js க்கான `index.js`) என்ற கோப்பை உருவாக்கவும்:

    பைதான் (main.py):

    def hello_http(request):
        """HTTP Cloud Function.
        Args:
            request (flask.Request): The request object.
            <https://flask.palletsprojects.com/en/1.1.x/api/#flask.Request>
        Returns:
            The response text, or any set of values that can be turned into a
            Response object using `make_response`
            <https://flask.palletsprojects.com/en/1.1.x/api/#flask.Flask.make_response>.
        """
        request_json = request.get_json(silent=True)
        request_args = request.args
    
        if request_json and 'name' in request_json:
            name = request_json['name']
        elif request_args and 'name' in request_args:
            name = request_args['name']
        else:
            name = 'World'
        return f'Hello, {name}!'

    Node.js (index.js):

    exports.helloHttp = (req, res) => {
      let name = 'World';
      if (req.body.name) {
        name = req.body.name;
      } else if (req.query.name) {
        name = req.query.name;
      }
      res.status(200).send(`Hello, ${name}!`);
    };
  5. தேவைகள் கோப்பை உருவாக்கவும் (பைதான் மட்டும்):

    நீங்கள் பைதான் பயன்படுத்துகிறீர்கள் என்றால், `requirements.txt` என்ற கோப்பை உருவாக்கி, உங்கள் செயல்பாட்டிற்குத் தேவையான எந்த சார்புகளையும் சேர்க்கவும். இந்த உதாரணத்திற்கு, இது கண்டிப்பாகத் தேவையில்லை, ஆனால் ஒன்றைச் சேர்ப்பது நல்ல நடைமுறை. உங்களுக்கு எந்த சார்புகளும் இல்லையென்றால், அதை காலியாக விடலாம்.

  6. செயல்பாட்டை வரிசைப்படுத்தவும்:

    உங்கள் செயல்பாட்டை வரிசைப்படுத்த `gcloud functions deploy` கட்டளையைப் பயன்படுத்தவும். `YOUR_FUNCTION_NAME` என்பதை உங்கள் செயல்பாட்டிற்கான விரும்பிய பெயருடன் மாற்றவும்.

    பைதான்:

    gcloud functions deploy YOUR_FUNCTION_NAME \\\n    --runtime python39 \\\n    --trigger-http \\\n    --allow-unauthenticated

    Node.js:

    gcloud functions deploy YOUR_FUNCTION_NAME \\\n    --runtime nodejs16 \\\n    --trigger-http \\\n    --allow-unauthenticated

    அளவுருக்களின் விளக்கம்:

    • `YOUR_FUNCTION_NAME`: உங்கள் கிளவுட் செயல்பாட்டிற்கு நீங்கள் கொடுக்க விரும்பும் பெயர்.
    • `--runtime`: உங்கள் செயல்பாட்டிற்கான ரன்டைம் சூழல் (எ.கா., `python39`, `nodejs16`).
    • `--trigger-http`: HTTP கோரிக்கைகளால் செயல்பாடு தூண்டப்பட வேண்டும் என்பதைக் குறிப்பிடுகிறது.
    • `--allow-unauthenticated`: அங்கீகாரம் இல்லாமல் யாரையும் செயல்பாட்டை அழைக்க அனுமதிக்கிறது. எச்சரிக்கை: உற்பத்தி சூழல்களில் இதை இயக்கும்போது கவனமாக இருங்கள்! சரியான அங்கீகாரம் மற்றும் அங்கீகாரத்தை செயல்படுத்துவதைக் கவனியுங்கள்.
  7. செயல்பாட்டைச் சோதிக்கவும்:

    வரிசைப்படுத்தலுக்குப் பிறகு, `gcloud` கட்டளை உங்கள் செயல்பாட்டின் URL ஐ வெளியிடும். பின்னர் `curl` அல்லது Postman போன்ற ஒரு கருவியைப் பயன்படுத்தி அந்த URL க்கு ஒரு HTTP கோரிக்கையை அனுப்புவதன் மூலம் அதைச் சோதிக்கலாம்.

    curl YOUR_FUNCTION_URL

    பதிலில் "Hello, World!" செய்தியை நீங்கள் காண வேண்டும். ஒரு பெயரை ஒரு வினவல் அளவுருவாகவும் அனுப்பலாம்:

    curl "YOUR_FUNCTION_URL?name=YourName"

    இது "Hello, YourName!" என்பதைத் திரும்பப் பெற வேண்டும்.

HTTP கோரிக்கை மற்றும் பதிலை புரிந்துகொள்வது

ஒரு HTTP கோரிக்கையால் ஒரு கிளவுட் செயல்பாடு தூண்டப்படும்போது, கோரிக்கை பற்றிய தகவல்களைக் கொண்ட ஒரு பொருளைப் பெறுகிறது. இந்த பொருள் பொதுவாக உள்ளடக்கியது:

உங்கள் செயல்பாடு பின்னர் ஒரு HTTP பதிலை வழங்க வேண்டும், இதில் அடங்கும்:

உதாரணம்: வெவ்வேறு HTTP முறைகளைக் கையாளுதல்

உங்கள் கிளவுட் செயல்பாட்டில் வெவ்வேறு HTTP முறைகளை எவ்வாறு கையாள்வது என்பதற்கான ஒரு உதாரணம் இங்கே:

பைதான் (main.py):

from flask import escape

def http_method(request):
    """Responds to any HTTP request.
    Args:
        request (flask.Request): HTTP request object.
    Returns:
        The response text or any set of values that can be turned into a
        Response object using
        `make_response`<https://flask.palletsprojects.com/en/2.0.x/api/#flask.Flask.make_response>.
    """
    if request.method == 'GET':
        return 'இது ஒரு GET கோரிக்கை!'
    elif request.method == 'POST':
        request_json = request.get_json(silent=True)
        if request_json and 'message' in request_json:
            message = escape(request_json['message'])
            return f'இது ஒரு POST கோரிக்கை செய்தியுடன்: {message}'
        else:
            return 'இது செய்தியற்ற ஒரு POST கோரிக்கை.'
    else:
        return 'ஆதரவற்ற HTTP முறை.', 405

Node.js (index.js):

exports.httpMethod = (req, res) => {
  switch (req.method) {
    case 'GET':
      res.status(200).send('இது ஒரு GET கோரிக்கை!');
      break;
    case 'POST':
      if (req.body.message) {
        const message = req.body.message;
        res.status(200).send(`இது ஒரு POST கோரிக்கை செய்தியுடன்: ${message}`);
      } else {
        res.status(200).send('இது செய்தியற்ற ஒரு POST கோரிக்கை.');
      }
      break;
    default:
      res.status(405).send('ஆதரவற்ற HTTP முறை!');
      break;
  }
};

புதுப்பிக்கப்பட்ட செயல்பாட்டை `gcloud functions deploy` கட்டளையைப் பயன்படுத்தி வரிசைப்படுத்த நினைவில் கொள்ளுங்கள்.

உங்கள் HTTP தூண்டுகோல்களைப் பாதுகாத்தல்

HTTP தூண்டுகோல்களுடன் பணிபுரியும் போது பாதுகாப்பு மிக முக்கியம், குறிப்பாக முக்கியமான தரவு அல்லது முக்கியமான செயல்பாடுகளைக் கையாளும் போது. சில முக்கிய பாதுகாப்பு கவனிக்க வேண்டியவை இங்கே:

அங்கீகாரம் மற்றும் அங்கீகரிப்பு (Authentication and Authorization)

முன்னிருப்பாக, `--allow-unauthenticated` ஐப் பயன்படுத்தினால், HTTP ஆல் தூண்டப்படும் Cloud Functions பொதுவில் அணுகக்கூடியவை. பெரும்பாலான உற்பத்திச் சூழ்நிலைகளில், அங்கீகரிக்கப்பட்ட பயனர்கள் அல்லது சேவைகளுக்கு மட்டுமே அணுகலைக் கட்டுப்படுத்த விரும்புவீர்கள். Google Cloud அங்கீகாரம் மற்றும் அங்கீகாரத்திற்கான பல விருப்பங்களை வழங்குகிறது:

உள்ளீட்டு சரிபார்ப்பு

SQL injection அல்லது cross-site scripting (XSS) போன்ற பாதுகாப்பு பாதிப்புகளைத் தடுக்க உங்கள் Cloud Function பெறும் உள்ளீட்டுத் தரவை எப்போதும் சரிபார்க்கவும். தீங்கிழைக்கும் உள்ளீட்டிலிருந்து பாதுகாக்க பொருத்தமான சுத்திகரிப்பு மற்றும் தப்பித்தல் நுட்பங்களைப் பயன்படுத்தவும்.

HTTPS

கிளையண்டிற்கும் செயல்பாட்டிற்கும் இடையிலான தகவல்தொடர்புகளை குறியாக்க, உங்கள் Cloud Function HTTPS வழியாக மட்டுமே அணுகக்கூடியதாக இருப்பதை உறுதிப்படுத்தவும். Google Cloud Functions தானாகவே HTTPS endpoints ஐ வழங்குகிறது.

வீத வரம்பிடல் (Rate Limiting)

துஷ்பிரயோகம் மற்றும் சேவை மறுப்பு (DoS) தாக்குதல்களைத் தடுக்க வீத வரம்பிடலைச் செயல்படுத்தவும். அதிகப்படியான போக்குவரத்திலிருந்து உங்கள் Cloud Functions ஐப் பாதுகாக்க Google Cloud Armor போன்ற சேவைகளை நீங்கள் பயன்படுத்தலாம்.

HTTP தூண்டுகோல்களுக்கான பயன்பாட்டு வழக்குகள்

HTTP தூண்டுகோல்கள் பல்துறை மற்றும் பரந்த அளவிலான பயன்பாடுகளில் பயன்படுத்தப்படலாம். சில பொதுவான பயன்பாட்டு வழக்குகள் இங்கே:

பல்வேறு தொழில்களில் உதாரணங்கள்

மேம்பட்ட நுட்பங்கள்

சுற்றுச்சூழல் மாறிகளைப் பயன்படுத்துதல்

சுற்றுச்சூழல் மாறிகள் உங்கள் குறியீட்டில் முக்கியமான தகவல்களையோ அல்லது உள்ளமைவு மதிப்புகளையோ ஹார்ட்கோட் செய்யாமல் உங்கள் கிளவுட் செயல்பாட்டை உள்ளமைக்க உங்களை அனுமதிக்கின்றன. `gcloud functions deploy` கட்டளையைப் பயன்படுத்தி அல்லது Google Cloud Console இல் சூழல் மாறிகளை அமைக்கலாம்.

gcloud functions deploy YOUR_FUNCTION_NAME \\\n    --runtime python39 \\\n    --trigger-http \\\n    --set-env-vars API_KEY=YOUR_API_KEY,DATABASE_URL=YOUR_DATABASE_URL

உங்கள் குறியீட்டில், `os.environ` அகராதி (பைதான்) அல்லது `process.env` பொருள் (Node.js) ஐப் பயன்படுத்தி சூழல் மாறிகளை அணுகலாம்.

பைதான்:

import os

def your_function(request):
    api_key = os.environ.get('API_KEY')
    # உங்கள் செயல்பாட்டில் API விசையைப் பயன்படுத்தவும்
    return f'API Key: {api_key}'

Node.js:

exports.yourFunction = (req, res) => {
  const apiKey = process.env.API_KEY;
  # உங்கள் செயல்பாட்டில் API விசையைப் பயன்படுத்தவும்
  res.status(200).send(`API Key: ${apiKey}`);
};

ஒத்திசைவற்ற பணிகளைக் கையாளுதல்

நீண்ட நேரம் இயங்கும் அல்லது கணக்கீட்டில் அதிக பணி தேவைப்படும் பணிகளுக்கு, HTTP கோரிக்கையைத் தடுப்பதைத் தவிர்க்க ஒத்திசைவற்ற செயலாக்கத்தைப் பயன்படுத்துவது சிறந்தது. இந்த பணிகளை தனி வரிசைகளில் இருந்து நீக்க Google Cloud Tasks அல்லது Cloud Pub/Sub போன்ற சேவைகளைப் பயன்படுத்தலாம்.

பிழை கையாளுதல் மற்றும் பதிவு செய்தல்

உங்கள் Cloud Functions இல் வலுவான பிழை கையாளுதல் மற்றும் பதிவு செய்தலைச் செயல்படுத்தவும், சிக்கல்களை விரைவாக அடையாளம் காணவும் தீர்க்கவும். உங்கள் செயல்பாடுகளிலிருந்து பதிவுகளைச் சேகரிக்கவும் அவற்றின் செயல்திறனைக் கண்காணிக்கவும் Google Cloud Logging ஐப் பயன்படுத்தவும்.

சிறந்த நடைமுறைகள்

பொதுவான சிக்கல்களைத் தீர்க்குதல்

முடிவுரை

HTTP தூண்டுகோள்களுடன் கூடிய Google Cloud Functions சர்வர் இல்லாத பயன்பாடுகளை உருவாக்க சக்திவாய்ந்த மற்றும் நெகிழ்வான வழியை வழங்குகிறது. இந்த வழிகாட்டியில் விவாதிக்கப்பட்ட கருத்துக்கள் மற்றும் நுட்பங்களைப் புரிந்துகொள்வதன் மூலம், உலகளாவிய பார்வையாளர்களுக்கு அளவிடக்கூடிய, செலவு குறைந்த மற்றும் நிகழ்வு சார்ந்த தீர்வுகளை உருவாக்க Cloud Functions இன் சக்தியை நீங்கள் பயன்படுத்தலாம். சர்வர் இல்லாத புரட்சியைத் தழுவி, உங்கள் கிளவுட் பயன்பாடுகளின் முழு திறனையும் திறக்கவும்!

Google Cloud Functions: HTTP தூண்டுகோல்களுக்கான ஒரு விரிவான வழிகாட்டி | MLOG